﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DataLayer.Database;

namespace DataLayer.Class
{
    public class Rezervasyon : IOperable
    {
        RezervasyonDB rezervasyonDB = new RezervasyonDB();
        int rezID;
        Musteri musteri;
        Masa masa;
        int kisiSayisi;
        DateTime tarih;
        string zaman;
        bool bittiMi;
        string aciklama;

        public Rezervasyon()
        {
            musteri = new Musteri();
            masa = new Masa();
        }

        public Rezervasyon(int rezID, Musteri musteri, Masa masa, int kisiSayisi, DateTime tarih, string zaman, bool bittiMi, string aciklama)
        {
            this.rezID = rezID;
            this.musteri = musteri;
            this.masa = masa;
            this.kisiSayisi = kisiSayisi;
            this.tarih = tarih;
            this.zaman = zaman;
            this.bittiMi = bittiMi;
            this.aciklama = aciklama;
        }

        public Rezervasyon(Musteri musteri, Masa masa, int kisiSayisi, DateTime tarih, string zaman, bool bittiMi, string aciklama)
        {
            this.musteri = musteri;
            this.masa = masa;
            this.kisiSayisi = kisiSayisi;
            this.tarih = tarih;
            this.zaman = zaman;
            this.bittiMi = bittiMi;
            this.aciklama = aciklama;
        }

        public int RezID
        {
            get { return rezID; }
            set { rezID = value; }
        }
        public Musteri Musteri
        {
            get { return musteri; }
            set { musteri = value; }
        }
        public Masa Masa
        {
            get { return masa; }
            set { masa = value; }
        }
        public int KisiSayisi
        {
            get { return kisiSayisi; }
            set { kisiSayisi = value; }
        }
        public DateTime Tarih
        {
            get { return tarih; }
            set { tarih = value; }
        }
        public string Zaman
        {
            get { return zaman; }
            set { zaman = value; }
        }
        public bool BittiMi
        {
            get { return bittiMi; }
            set { bittiMi = value; }
        }
        public string Aciklama
        {
            get { return aciklama; }
            set { aciklama = value; }
        }

        public void ekle()
        {
            rezervasyonDB.rezervasyonYap(this);
        }
        public void sil()
        {
            rezervasyonDB.rezervasyonSil(this.RezID);
        }

        public void guncelle()
        {
            rezervasyonDB.rezervasyonGuncelle(this.rezID,this.kisiSayisi,this.zaman,this.aciklama);
        }

        public void bitir()
        {
            rezervasyonDB.rezervasyonBitir(this);
        }

        public void yap()
        {
            rezervasyonDB.rezervasyonYap(this);
        }
    }
}
